Embodiments of the inventive concept relate to memory systems and data write methods capable of adaptively controlling the size of a merge operation in accordance with a number of free blocks and a write pattern.
Certain non-volatile memory systems, such as flash memory systems, have become design mainstays for contemporary handheld electronic devices such as digital cameras, MP3 players, cellular phones, PDA, etc. Flash memory in particular provides nonvolatile memory functionality at low-power with high memory cell integration density.
As is conventionally understood, however, flash memory is often characterized by an erase unit (i.e., the nominal unit size of memory space erased during an erase operation) that is different from a write unit (i.e., the nominal unit size of memory space written to during a program operation). For this reason, certain specialized software commonly referred to as a “flash translation layer” or “FTL” is used to compensate for the size different between the erase unit and the write unit. One important function provided by the FLT is address mapping. During address mapping, the FTL essentially converts a logical address provided by a connected host into a physical address associated with the actual storage of data within the memory array of one or more flash memory device(s).
During a write (or program) operation, “write data” to be stored in a designated data block may first be written in a so-called “log block”. In the event that all pages of the log block are currently in use, the FTL may perform a merge operation during which data in the log block as well as data in a data block corresponding to a log block entry are copied to a new data block, thereby essentially freeing up resources for the current write operation.
Recognizing this sort of necessary memory system management overhead, the overall speed of write operations executed by a memory system will vary in relation to the speed with which data is written in a log block and the speed with which resulting merge operations may be performed.